// EXIF标签中文映射表
export const exifTagsChinese: Record<string, Record<number, string>> = {
  '0th': {
    0x010E: '图像描述',
    0x013B: '作者',
    0x010F: '照相机制造商',
    0x0110: '照相机型号',
    0x0112: '方向',
    0x011A: '水平分辨率',
    0x011B: '垂直分辨率',
    0x0128: '分辨率单位',
    0x0131: '软件',
    0x0132: '文件更改日期和时间',
    0x0213: 'YCbCr定位',
    0x8769: 'Exif子IFD偏移量',
    0xA005: '交互操作IFD偏移量'
  },
  'Exif': {
    0x829A: '曝光时间',
    0x829D: '光圈系数',
    0x8822: '曝光程序',
    0x8827: 'ISO感光度',
    0x9000: 'Exif版本',
    0x9003: '拍摄时间',
    0x9004: '数字化时间',
    0x9204: '曝光补偿',
    0x9205: '最大光圈',
    0x9207: '测光模式',
    0x9208: '光源',
    0x9209: '闪光灯',
    0x920A: '镜头焦距',
    0x927C: '厂商注释',
    0x9286: '用户注释',
    0xA000: 'FlashPix版本',
    0xA001: '色彩空间',
    0xA002: '图像宽度',
    0xA003: '图像高度',
    0xA433: '镜头生产商',
    0xA434: '镜头型号'
  },
  'GPS': {
    0x0000: 'GPS版本ID',
    0x0001: '纬度参考',
    0x0002: '纬度',
    0x0003: '经度参考',
    0x0004: '经度',
    0x0005: '海拔参考',
    0x0006: '海拔',
    0x0007: 'GPS时间',
    0x0008: 'GPS卫星',
    0x0009: 'GPS接收状态',
    0x000A: 'GPS测量模式',
    0x000B: '测量精度',
    0x000C: '速度单位',
    0x000D: '速度',
    0x000E: '航向参考',
    0x000F: '航向',
    0x0010: '方向参考',
    0x0011: '方向',
    0x0012: 'GPS定位时间',
    0x0013: 'GPS处理方法',
    0x0014: 'GPS面积信息',
    0x0015: '差分GPS数据年限',
    0x0016: '差分GPS基站ID',
    0x001D: 'GPS日期时间',
    0x001E: 'GPS差分修正',
    0x001F: 'GPS基站站号'
  },
  'Interop': {
    0x0001: '交互操作性索引',
    0x0002: '交互操作性版本'
  }
}

// 格式化EXIF值的函数
export function formatExifValue(tag: string, value: any): string {
  // 处理数组类型值
  if (Array.isArray(value)) {
    // 处理坐标数据（度分秒格式）
    if (tag === '2' || tag === '4') { // 纬度或经度
      if (value.length === 3) {
        return `${value[0][0] / value[0][1]}°${value[1][0] / value[1][1]}′${value[2][0] / value[2][1]}″`
      }
    }
    return value.map(v => Array.isArray(v) ? v.join('/') : v).join(', ')
  }
  
  // 处理分数形式的值
  if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
    return JSON.stringify(value)
  }
  
  return String(value)
}